package com.demo.entity;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.*;

import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * vte诊断评估表
 * @author zm
 * @since 2020-12
 */
@Data
@TableName("pd_vte_preventive")
@ApiModel(value="VtePreventive对象", description="vte诊断评估表")
public class VtePreventive implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "vte诊断序列号")
    @TableId(value = "vte_preventive_id", type = IdType.AUTO)
    private Integer vtePreventiveId;

    @ApiModelProperty(value = "病患序列号")
    @TableField("patient_id")
    @NotNull(message = "病患序列号不能为空")
    private Integer patientId;

    @ApiModelProperty(value = "诊断类别1Caprini(外科)2Padua(内科)")
    @TableField("preventive_type")
    @NotNull(message = "诊断类别不能为空")
    private Integer preventiveType;

    @ApiModelProperty(value = "风险评估结果jeson对象存储")
    @TableField("preventive_risk_result")
    private String preventiveRiskResult;

    @ApiModelProperty(value = "年龄")
    @TableField("patient_age")
    @NotNull(message = "年龄不能能为空")
    private Integer patientAge;

    @ApiModelProperty(value = "体重")
    @TableField("patient_weight")
    @NotNull(message = "体重不能为空")
    private BigDecimal patientWeight;

    @ApiModelProperty(value = "身高")
    @TableField("patient_height")
    @NotNull(message = "身高不能为空")
    private BigDecimal patientHeight;

    @ApiModelProperty(value = "风险评估时间")
    @TableField(value = "preventive_risk_time",fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date preventiveRiskTime;

    @ApiModelProperty(value = "风险评估得分")
    @TableField("preventive_risk_score")
    @NotNull(message = "风险评估得分不能为空")
    private Integer preventiveRiskScore;

    @ApiModelProperty(value = "风险评估分层" +
            "Caprini【外科】（得分=0，极低；得分=1、2,低危；得分=3、4，中危；得分＞4，高危" + "----1.低危 2.高危   3.中危   4.极低"+
            "Padua【内科】（得分＜4低危；得分≥4高危）---1.低危  2.高危")
    @TableField("preventive_risk_rank")
    private Integer preventiveRiskRank;

    @ApiModelProperty(value = "风险评估建议jeson对象存储")
    @TableField("preventive_risk_advise")
    private String preventiveRiskAdvise;

    @ApiModelProperty(value = "确认时间")
    @TableField("risk_confirm_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date riskConfirmTime;

    @ApiModelProperty(value = "确认用户")
    @TableField("risk_confirm_user_id")
    private Integer riskConfirmUserId;

    @ApiModelProperty(value = "禁忌评估时间")
    @TableField("preventive_taboo_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date preventiveTabooTime;

    @ApiModelProperty(value = "禁忌评估结果")
    @TableField("preventive_taboo_result")
    private String preventiveTabooResult;

    @ApiModelProperty(value = "禁忌评估处置建议jeson对象存储")
    @TableField("preventive_taboo_advise")
    private String preventiveTabooAdvise;

    @ApiModelProperty(value = "其他预防jeson对象存储")
    @TableField("other_prevention")
    private String otherPrevention;

    @ApiModelProperty(value = "诊断时机1新入2术后3分娩4出院5病情变化6定期")
    @TableField("diagnose_opportunity")
    @NotNull(message = "诊断时机不能为空")
    private Integer diagnoseOpportunity;

    @ApiModelProperty(value = "删除时间")
    @TableField("deleted_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date deletedTime;

    @ApiModelProperty(value = "删除人ID号")
    @TableField("deleted_user_id")
    private Integer deletedUserId;

    @ApiModelProperty(value = "创建时间&诊断时间")
    @TableField(value = "created_time",fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createdTime;

    @ApiModelProperty(value = "创建人ID号&诊断时间")
    @TableField("created_user_id")
    @NotNull(message = "创建人ID不能为空")
    private Integer createdUserId;

    @ApiModelProperty(value = "签字时间")
    @TableField("sign_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date signTime;

    @ApiModelProperty(value = "签字ID号")
    @TableField("sign_user_id")
    private Integer signUserId;

    @ApiModelProperty(value = "更新时间")
    @TableField(value = "updated_time",fill = FieldFill.UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updatedTime;

    @ApiModelProperty(value = "更新人ID号")
    @TableField("updated_user_id")
    private Integer updatedUserId;

    @ApiModelProperty(value = "下次评估时间")
    @TableField("next_preventive_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date nextPreventiveTime;

    @ApiModelProperty(value = "所属科室ID")
    @TableField("dept_sn")
    @NotNull(message = "所属科室ID不能为空")
    private Integer deptSn;

    @ApiModelProperty(value = "是否药物预防 1. 是    没有使用就为空")
    @TableField("drug_prevention")
    private Integer drugPrevention;

    @ApiModelProperty(value = "是否物理预防   1.是    1.等待中  2.进行中 3.已完成")
    @TableField("physical_prevention")
    private Integer physicalPrevention;


}
